Computer networking uses various data communications techniques to transmit information from one computer to another over a network. A typical network includes a series of interconnected data communications devices that can each store and forward or exchange data from one device to another, enabling the exchange of information. In a typical computer networking application, source and destination computers are personal computers, workstations, or the like which each include a modem or other transmitter that is used to transmit the data from the computer. The modem accepts data from an application executing on the computer and encodes the data according to one or more of a number of standardized data communication protocols. The modem can also decode data that is received. The specific protocol selected may be based on the function of the application in use and may create data having a specific associated type.
Depending upon which applications are in use, there may be many different types of data transmitted and received across a network. For example, voice data, video data, facsimile data and traditional application data (referred to as modem data) can all be digitized and encoded according to respective encoding protocols, with each protocol designed to optimally handle data of its specific type. Voice data for instance, must be sampled frequently and in real-time, and thus the mechanisms (i.e. protocols) used to send and receive voice data typically use small packet sizes that must be transmitted and received in a predetermined order over data links offering a more or less guaranteed quality of service (QoS). Conversely, regular application (modem) data can be transmitted using large packets that need not arrive in real-time nor in any particular order and delays in transmission are generally allowable.
Quite often, a network connection originates at a source computer host when data is transmitted from the modem to a central telephone switching office over a telephone line, for example. The central office may host connections from several source or destination computers each coupled via modem to the central office over dial-up or dedicated connections. Each connection is tantamount to a phone call and is frequently referred to simply as a “call” or a “DS0.” There may be a number of central offices linked together which form a connection-based wide area network or WAN. To send the data on each call in each central office to a large packet-based computer network such as the Internet, the calls are multiplexed onto transmission links, such as T1, T3, E1, TDM or OC3 links, each of which offers a high bandwidth and high data rate. These high speed multiplexed links are coupled to a network access server (NAS).
Access servers are typically located at the facilities of an Internet Service Provider. An access server accepts the high bandwidth multiplexed links and routes the call connections containing the modulated data to a packet network. The access server also accepts data packets traveling in the reverse direction from the packet network to remote hosts located on the WAN.
Within an access server, the high bandwidth T1, T3, E1, TDM and/or OC3 links containing calls from the WAN are received by a framer. The framer accepts the high bandwidth connections and outputs a number of Time Division Multiplexed (TDM) streams, each of which can include many multiplexed calls in associated timeslots. Each portion of data or DS0 in timeslots associated with each call has an associated data type, such as voice data, video data, facsimile data, modem data, or another type of data.
Each TDM stream is directed to a module to handle data within calls carried in that stream. A module is generally a circuit card that can accept and process the call data in one or more TDM streams according to a single service associated with that module. The module processes the calls in that TDM stream according to a service for which the module was designed. In other words, the specific module selected is dependant upon the type of data in the TDM stream. For instance, a module designed for voice data may be able to accept and process a TDM stream containing up to 32 simultaneous voice calls. Another module may be designed to accept calls containing video data, and another for modem data. The modules accept the TDM streams and convert the data for each call into a packet format for eventual transmission to a packet network.
In some prior art systems, a module that is designed to handle a specific type of data, such as commonly transmitted modem data, can use its modem data configuration to handle others types of data. As an example, a module configured for modem data can typically be configured to service voice data as well. The module configuration refers to such things as the length and number of data and message queues provided in the module, the protocol error checking used, and the data handling protocols that are used by the module. A module configured for modem data may, for example, use longer queues and create large packets full of data, while a module configured for voice may use short queues and create many packets with smaller amounts of data due to the real-time requirements of voice.
Modules configured to service one data type may use that configuration to service data of other types. In such cases, the underlying configuration of these modules does not change. Rather, the modules merely piggyback or shoehorn other data types into the constructs used for the original configuration. As an example, voice data can be transmitted through a module designed with queue lengths and protocols which are optimized for handling packets of modem data.
In the access server, a number of modules are typically coupled to another circuit card called a carrier card. A typical carrier card can host up to six modules. Like the modules, carrier cards are designed to most effectively handle data streams associated with the modules which they host. By way of example, a carrier card that hosts six voice modules is specifically designed to work with voice data, while a carrier card that hosts modem data modules is designed to most effectively handle streams of modem data. In a typical access server, there can be multiple carrier cards of different types, each hosting multiple modules.
In other access server systems, the modules can couple directly to a router backplane without a carrier card. The router backplane includes a router processor. The router processor is configured to specifically communicate with the modules. In either the case of a module/carrier card configuration, or the module/backplane configuration, an access server can service many various types of data connections by routing the different call types to modules designed to best serve the data in the call connections.
The backplane links connections from modules to one or more computer networks such as the Internet. The backplane may include knowledge of what type of data is being provided from a specific carrier card and/or module. Thus, if the backplane processor detects a carrier card hosting voice modules, preference may be given to data passing to and from this carrier card due to the real-time nature of voice data. Generally however, the backplane accepts the packetized data connections from each carrier card/module configuration and routes them to an appropriate computer network segment. In the reverse direction, the backplane accepts packets from the computer network segments and routes them to an appropriate module where the service converts the packet data to TDM stream data.